#!/usr/bin/env node
/////////////
// console.log ('architecture',process.arch);
// console.log('platform',process.platform);
// console.log('');

// console.log('process id',process.pid);
// console.log('exePath:',process.execPath);
// console.log('');

// console.log('node version:',process.version);
// console.log('user id:',process.getuid());
// console.log('group id:',process.getgid());
// console.log('cwd',process.cwd());

// console.log('');

// console.log('rss:',process.memoryUsage().rss);
// console.log('heapTotal:',process.memoryUsage().heapTotal);
// console.log('heapUsed:',process.memoryUsage().heapUsed);
// console.log('external:',process.memoryUsage().external);

// // console.log('\env',process.env);
// console.log('host name:',process.env.HOSTNAME);
// 01-information.js

const os = require('os');
const process = require('process');
const exec = require('child_process').exec;

// 打印 CPU 架构信息以及操作系统版本信息
console.log('CPU 架构:', os.arch());
console.log('操作系统版本:', os.platform() + ' ' + os.release());

// 打印进程 id 信息以及 Node.js 可执行文件的绝对路径信息
console.log('进程 ID:', process.pid);
console.log('Node.js 可执行文件路径:', process.execPath);

// 增加标准输入流的读取操作，让程序暂停执行
console.log('按 Enter 继续...');
process.stdin.on('data', () => {
  console.log('继续执行...');
});

// 异步执行 Linux 命令 ps aux
exec('ps aux', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log('ps aux 命令输出:', stdout);
});

// 打印 Node.js 版本信息
console.log('Node.js 版本:', process.version);

// 打印当前登录用户 id 信息
exec('id', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log('id 命令输出:', stdout);
});

// 打印当前脚本所在路径信息
console.log('当前脚本所在路径:', __dirname);

// 打印内存使用情况
console.log('内存使用情况:', os.freemem() / (1024 * 1024 * 1024) + ' GB');

// 打印环境变量
console.log('环境变量:', process.env);

// 打印编译当前 Node.js 可执行文件的配置选项
console.log('Node.js 编译配置:', process.config);

// 生成当前进程的诊断报告
console.log('当前进程的诊断报告:', process.report.getReport());

// 打印当前操作系统的 CPU 信息
console.log('CPU 信息:', os.cpus());

// 打印当前操作系统的运行时长信息
exec('uptime', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log('uptime 命令输出:', stdout);
});

// 打印当前操作系统的版本信息
console.log('操作系统版本:', os.platform() + ' ' + os.release());

// 打印当前操作系统的内核信息
exec('uname -a', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log('uname -a 命令输出:', stdout);
});

// 打印当前操作系统的网卡信息
exec('ifconfig', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log('ifconfig 命令输出:', stdout);
});

// 打印当前操作系统的用户信息
exec('id', (error, stdout, stderr) => {
  if (error) {
    console.error(`执行的错误: ${error}`);
    return;
  }
  console.log('id 命令输出:', stdout);
});


